<?php

namespace app\admin\controller;

use think\facade\View;
use think\facade\Db;

class Forum extends Base
{
    /**
     * 更新公告列表
     */
    public function index()
    {
        if(request()->isAjax()){
            $page = input('page', 1);
            $limit = input('limit', 10);
            $search = input('search', '');
            
            $where = [];
            if(!empty($search)){
                $where[] = ['title', 'like', '%'.$search.'%'];
            }
            
            // 获取总数
            $count = Db::name('forum')
                ->where('type', 'update')
                ->where($where)
                ->count();
            
            // 获取列表数据
            $list = Db::name('forum')
                ->where('type', 'update')
                ->where($where)
                ->order('id', 'desc')
                ->page($page, $limit)
                ->select()
                ->toArray();
            
            return json([
                'code' => 0,
                'msg' => '获取成功',
                'count' => $count,
                'data' => $list
            ]);
        }
        
        return View::fetch();
    }
    
    /**
     * 添加更新公告
     */
    public function add()
    {
        if(request()->isAjax()){
            $data = input('post.');
            
            // 验证数据
            if(empty($data['title']) || empty($data['content'])){
                return json(['code' => 1, 'msg' => '请填写完整信息']);
            }
            
            // 组装数据
            $insert_data = [
                'title' => $data['title'],
                'content' => $data['content'],
                'type' => 'update', // 固定为更新公告类型
                'user_id' => session('admin_id') ?: 0, // 使用管理员ID
                'create_time' => date('Y-m-d H:i:s'),
                'update_time' => date('Y-m-d H:i:s'),
                'view_count' => 0
            ];
            
            // 插入数据
            $result = Db::name('forum')->insert($insert_data);
            if($result){
                return json(['code' => 0, 'msg' => '发布成功']);
            }else{
                return json(['code' => 1, 'msg' => '发布失败']);
            }
        }
        
        return View::fetch();
    }
    
    /**
     * 删除更新公告
     */
    public function delete()
    {
        if(request()->isAjax()){
            $id = input('id');
            if(!$id){
                return json(['code' => 1, 'msg' => '参数错误']);
            }
            
            // 删除公告
            $result = Db::name('forum')->where('id', $id)->where('type', 'update')->delete();
            if($result){
                return json(['code' => 0, 'msg' => '删除成功']);
            }else{
                return json(['code' => 1, 'msg' => '删除失败']);
            }
        }
        
        return json(['code' => 1, 'msg' => '非法请求']);
    }
}